﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoDatos.Manejador;
using AccesoDatos.Objetos;

namespace Autorizacion_facturas_caja.Vacaciones
{
    public partial class frmVacaciones_Busqueda_Reporte_Pago : Form
    {
        Manejador_Empleado_Captura Mane = new Manejador_Empleado_Captura();
        objRH obj = new objRH();
        objVacaciones obj1 = new objVacaciones();
        Manejador_Vacaciones MV = new Manejador_Vacaciones();

        #region FUNCIONES
        private void fecha()
        {
            //coloca la fecha inicio 15 dias antes
            DateTime Fecha_Hoy = DateTime.Today;

            Fecha_Hoy = Fecha_Hoy.AddDays(-15);
            dTPInicio.Text = Fecha_Hoy.ToShortDateString();
        }

        //realiza la busqueda
        private void buscar()
        {
            if (cmbTipo.Text.Trim() == "PRIMA VACACIONAL")
            {
                obj1.Tipo = "PRIMA";
            }
            else if (cmbTipo.Text.Trim() == "DIAS VACACIONES")
            {
                obj1.Tipo = "DIAS";
            }
            obj1.Fecha_Inicio_Vacaciones = dTPInicio.Value;
            obj1.Fecha_fin_vacaciones = dTPFin.Value;
            obj1.Autorizacion = cBAutorizado.Checked;
            if (cmbTipo.Text.Trim() != "")
            {
                dataGridView1.DataSource = MV.ReportVacacionesConsultaPagos(obj.Buscar, obj1.Tipo, obj.SucId, obj1.Fecha_Inicio_Vacaciones, obj1.Fecha_fin_vacaciones, obj1.Autorizacion);
                propiedadesColumnas();
            }
            else { MessageBox.Show("SELECCIONE EL TIPO DE PAGO A REALIZAR", "ALERTA"); }

        }

        //Coloca las propiedades de las columnas
        private void propiedadesColumnas()
        {
            this.dataGridView1.RowHeadersVisible = false;
            /*Esconde las columnas*/
            if (cmbTipo.Text.Trim() == "PRIMA VACACIONAL")
            {
                this.dataGridView1.Columns["Monto_Prima"].Visible = false;
                this.dataGridView1.Columns["id_prima_vacacional"].Visible = false;
            }
            else if (cmbTipo.Text.Trim() == "DIAS VACACIONES")
            {
                this.dataGridView1.Columns["id_Vacaciones_Pago"].Visible = false;
                this.dataGridView1.Columns["Monto_Total"].Visible = false;
            }

            this.dataGridView1.Columns["nombre"].Visible = false;
            this.dataGridView1.Columns["apellidos"].Visible = false;
            this.dataGridView1.Columns["Antiguedad"].Visible = false;
            this.dataGridView1.Columns["Periodo"].Visible = false;

            //Renombra columnas

            this.dataGridView1.Columns["departamento"].HeaderText = "DEPARTAMENTO";
            this.dataGridView1.Columns["empresa"].HeaderText = "EMPRESA";
            this.dataGridView1.Columns["fecha_ingreso"].HeaderText = "FECHA INGRESO";
            this.dataGridView1.Columns["puesto"].HeaderText = "PUESTO";
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderText = "EMPLEADO";
            this.dataGridView1.Columns["Nombre_apellidos"].DisplayIndex = 0;
            this.dataGridView1.Columns["departamento"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["empresa"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_ingreso"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["fecha_ingreso"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["puesto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            this.dataGridView1.Columns["Nombre_apellidos"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        //despliega el reporte de la prima vacacional
        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

            if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo.Trim() == "PRIMA")
            {
                obj1.Id_Prima_Vacacional = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                frmVacaciones_Reporte_Pagos fvrp = new frmVacaciones_Reporte_Pagos(obj1.Id_Prima_Vacacional, obj1.Tipo);
                fvrp.ShowDialog();

                buscar();
            }
            else if (e.ColumnIndex != 0 && e.RowIndex >= 0 && obj1.Tipo.Trim() == "DIAS")
            {
                obj1.Id_Vacaciones_Pago = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
                frmVacaciones_Reporte_Pagos2 fvrp = new frmVacaciones_Reporte_Pagos2(obj1.Id_Vacaciones_Pago);
                fvrp.ShowDialog();

                buscar();
            }
        }

        #endregion

        #region BOTONES
        private void btnBuscar_Click(object sender, EventArgs e)
        {
            obj.Buscar = txtBuscar.Text.Trim();
            obj.SucId = cmbSucursal.SelectedValue.ToString();

            buscar();
        }

        private void btnRegresar_Click(object sender, EventArgs e)
        {
            Close();
        }
        #endregion

        #region  EVENTOS
        public frmVacaciones_Busqueda_Reporte_Pago()
        {
            InitializeComponent();
            ObtieneDatosCombo();
            fecha();
        }

        //Obtiene los datos de la tabla cat_sucursales al combo de sucursales
        private void ObtieneDatosCombo()
        {
            cmbSucursal.DataSource = Mane.ObtieneSucursales();
            cmbSucursal.ValueMember = "SucId";
            cmbSucursal.DisplayMember = "Nombre";
        }

        private void frmVacaciones_Busqueda_Reporte_Pago_Load(object sender, EventArgs e)
        {
            toolTip1.SetToolTip(btnBuscar, "BUSCAR");
            toolTip1.SetToolTip(btnRegresar, "REGRESAR");
            toolTip1.SetToolTip(dTPInicio, "FECHA DE PAGO");
            toolTip1.SetToolTip(dTPFin, "FECHA DE PAGO");
        }

        //valida que la fecha introducida sea correcta
        private void dTPInicio_ValueChanged(object sender, EventArgs e)
        {
            if (dTPInicio.Value > dTPFin.Value)
            {
                dTPInicio.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }

        //valida que la fecha introducida sea correcta
        private void dTPFin_ValueChanged(object sender, EventArgs e)
        {
            if (dTPFin.Value < dTPInicio.Value)
            {
                dTPFin.Value = DateTime.Today;
                MessageBox.Show("FECHA INCORRECTA", "ALERTA");
            }
        }

        //llama al metodo buscar
        private void txtBuscar_TextChanged(object sender, EventArgs e)
        {
            obj.Buscar = txtBuscar.Text.Trim();
            obj.SucId = cmbSucursal.SelectedValue.ToString();
            buscar();
        }
        #endregion
    }
}
